package grails

import home.HomePlantas
import home.HomeZombies
import homes.HomePlantasG
import homes.HomeZombiesG
import applicationModel.Ataque
import applicationModel.Plantar
import busqueda.PlantaBusqueda
import busqueda.ZombieBusqueda
import busqueda.FilaBusqueda
import dominio.JardinTablero
import dominio.Jugador
import dominio.Planta
import org.uqbar.commons.utils.ApplicationContext



class JuegoController {
	static scope = "session"
	
	def JuegoService
	def jardinT = new JardinTablero()
	def Plantar plantar
	def Ataque ataque
	def homeZombies = new HomeZombies()
	def homePlantas = new HomePlantas()
	
	static allowedMethods = [plantarla: "POST"]
	
    def index() {
		jardinT.start()
		redirect(action: "list")
		
	}
	
	def list(){		
//		def filasList = juegoService.getFilas(params, FilaBusqueda)
//		[filas: filasList]
		[filasList: jardinT.getFilas()]
	}
	
	
	def j_acuatico(){
		def plantaBusqueda = new PlantaBusqueda(params.nombreBusqueda)
		[plantas: HomePlantasG.instance.getPlantas(plantaBusqueda), plantaBusqueda: plantaBusqueda]

		}
	
	def j_terrestre(){
		def plantaBusqueda = new PlantaBusqueda(params.nombreBusqueda)
		[plantas: HomePlantasG.instance.getPlantas(plantaBusqueda), plantaBusqueda: plantaBusqueda]
	
	}
	
	def atacar(){
		def idFilaSel = new Integer(params.filaSeleccionada)
		def filaSeleccionada =  jardinT.getFilas().get(idFilaSel)
		ataque = new Ataque(filaSeleccionada,new Jugador())
		[zombies: homeZombies.getZombies()]
	}
	
	def atacarla(){
		
		def idZombieNew = new Integer(params.zombieSeleccionado)
		def zombieNew =  homeZombies.getZombies().get(idZombieNew)
		
		ataque.setZombieAtacante(zombieNew)
		ataque.ataca()
		//def fila = plantar.filaSeleccionada
		//[fila:fila,planta:plantaNew]
		redirect(action: "list")
		
		
	}
	
	def plantar(){
		
		def idFilaSel = new Integer(params.filaSeleccionada)
		def filaSeleccionada =  jardinT.getFilas().get(idFilaSel)
		
		//def filaSeleccionada = params.fila
		plantar = new Plantar(filaSeleccionada)	
		[plantas: homePlantas.getPlantas()]
	}
	
	def almanaque_zombie(){
		def zombieBusqueda = new ZombieBusqueda(params.nombreBusqueda)
		[zombies: HomeZombiesG.instance.getZombies(zombieBusqueda), zombieBusqueda: zombieBusqueda]	
	}
	
	def plantarla(){
		def idPlantaNew = new Integer(params.plantaSeleccionada)
		def plantaNew =  homePlantas.getPlantas().get(idPlantaNew)
		//plantar.filaSeleccionada = fila
		plantar.setPlantaAPlantar(plantaNew)
		plantar.agregar()
		//def fila = plantar.filaSeleccionada
		//[fila:fila,planta:plantaNew]
		redirect(action: "list")
	}
}

